package dp;

import java.util.Map;
import md.SistemaMD;

/**
 * La clase SistemaDP maneja el dominio del problema de los datos de la clase
 * SistemaMD.
 *
 * @author Jose Luis Torres
 * @version 1.0
 */
public class SistemaDP {

    private int idSistema;
    private String nombreSistema;
    private SistemaMD sistemaMd;

    /**
     * Constructor vacio.
     * Settea los atributos a los valores por defecto
     */
    public SistemaDP() {
        this.idSistema = -1;
        this.nombreSistema = "";
        this.sistemaMd = new SistemaMD();
    }

    /**
     * Inserta un nuevo sisstema a la BDD.
     *
     * @return Retorna TRUE si es que se realiza con exito el ingreso.
     */
    public boolean insertarSistema() {
        setDatosMd();
        return this.sistemaMd.insertarSistema();
    }

    /**
     * Modifica los datos de un Sistema existente en la BDD.
     *
     * @return Devuelve TRUE si es que se modifica con exito el Sistema.
     */
    public boolean modificarSistema() {
        setDatosMd();
        return this.sistemaMd.modificarSistema();
    }

    /**
     * Elimina un Sistema existente en la BDD.
     *
     * @return Devuelve TRUE si es que se elimina con exito el Sistema.
     */
    public boolean eliminarSistema() {
        setDatosMd();
        return this.sistemaMd.eliminarSistema();
    }

    /**
     * Metodo que permite obtener los sistemas de la BDD.
     *
     * @return Devuelve una lista con los sistemas disponibles de la BDD
     */
    public Map getSistemas() {
        return this.sistemaMd.getSistemas();
    }

    /**
     * Setea los atributos de la clase MD de acuerdo a los atributos de la DP
     */
    public void setDatosMd() {
        this.sistemaMd.setIdSistema(this.idSistema);
        this.sistemaMd.setNombreSistema(this.nombreSistema);
    }

    /***************************************
     * Getters & Setters
     ***************************************/
    public int getIdSistema() {
        return idSistema;
    }

    public String getNombreSistema() {
        return nombreSistema;
    }

    public SistemaMD getSistemaMd() {
        return sistemaMd;
    }

    public void setIdSistema(int idSistema) {
        this.idSistema = idSistema;
    }

    public void setNombreSistema(String nombreSistema) {
        this.nombreSistema = nombreSistema;
    }

    public void setSistemaMd(SistemaMD sistemaMd) {
        this.sistemaMd = sistemaMd;
    }
}
